function Create-zip   
{
  param([string]$path)
  $files = Get-ChildItem $path
  if (-not $path.EndsWith('.zip')) {$path += '.zip'}

  if (-not (test-path $path))
  {
    set-content $path ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
  }
  $ZipFile = (new-object -com shell.application).NameSpace($path)
  $files | foreach {$zipfile.CopyHere($_.fullname)}
}
#sample usage of create-zip
#create-zip "C:\Temp\1.0.0.417"

function Extract-Zip 
{
	param([string]$zipfilename, [string]$destination)

	if(test-path($zipfilename))
	{	
		$shellApplication = new-object -com shell.application
		$zipPackage = $shellApplication.NameSpace($zipfilename)
		$destinationFolder = $shellApplication.NameSpace($destination)
		$destinationFolder.CopyHere($zipPackage.Items())
	}
}
#sample usage of extract-zip
#extract-zip 'C:\Temp\1.0.0.417.zip' 'C:\Temp'